// SPDX-FileCopyrightText: 2024 Amir kokovamir6@gmail.com
// SPDX-License-Identifier: Apache-2.0


#ifndef WINDOW_H
#define WINDOW_H


// include glad
#include "glad/glad.h"

// include glfw3
#include <GLFW/glfw3.h>

// include glm
#include <glm/glm.hpp>

// std lib C++
#include <iostream>


// Window
class window
{
public:
    // initialization window
    static bool initialization(const std::string& title, int w, int h);

    // set close window
    static void setShouldCloseWindow(bool flag);

    // swapbuffer
    static void swapBuffers();

    // clear color window
    static void clear(const glm::vec4& color = {1.0f, 1.0f, 1.0f, 1.0f});

    // is close window
    static bool isShouldCloseWindow();

    // free memory
    static void finallyzation();

    static GLFWwindow* win;
};


#endif // WINDOW_H
